home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Tools - Objects / Macintosh Programmer’s Workshop / MPW 3.1 / MPW / Interfaces / CIncludes / OSUtils.h < prev    next >
Text File  |  1990-12-13  |  5KB  |  194 lines

  1. /************************************************************
  2.  
  3. Created: Tuesday, September 19, 1989 at 11:22 AM
  4.     OSUtils.h
  5.     C Interface to the Macintosh Libraries
  6.  
  7.  
  8.     Copyright Apple Computer, Inc.    1985-1989
  9.     All rights reserved
  10.     
  11.     Dont use:
  12.     -SetUpA5
  13.     -RestoreA5
  14.     Instead:
  15.     SetUpA5 --> myA5 = SetCurrentA5();
  16.     RestoreA5 --> oldA5 = SetA5(myA5);
  17.  
  18. ************************************************************/
  19.  
  20.  
  21. #ifndef __OSUTILS__
  22. #define __OSUTILS__
  23.  
  24. #ifndef __TYPES__
  25. #include <Types.h>
  26. #endif
  27.  
  28. #define useFree 0
  29. #define useATalk 1
  30. #define useAsync 2
  31. #define useExtClk 3         /*Externally clocked*/
  32. #define useMIDI 4
  33. #define curSysEnvVers 2     /*Updated to equal latest SysEnvirons version*/
  34. #define macXLMachine 0
  35. #define macMachine 1
  36. #define envMac -1            /*Environs Equates*/
  37. #define envXL -2
  38. #define envMachUnknown 0
  39. #define env512KE 1
  40. #define envMacPlus 2
  41. #define envSE 3
  42. #define envMacII 4
  43. #define envMacIIx 5
  44. #define envMacIIcx 6
  45. #define envSE30 7
  46. #define envPortable 8
  47. #define envMacIIci 9
  48. #define envCPUUnknown 0     /*CPU types*/
  49. #define env68000 1
  50. #define env68010 2
  51. #define env68020 3
  52. #define env68030 4
  53. #define envUnknownKbd 0     /*Keyboard types*/
  54. #define envMacKbd 1
  55. #define envMacAndPad 2
  56. #define envMacPlusKbd 3
  57. #define envAExtendKbd 4
  58. #define envStandADBKbd 5
  59. #define envPortADBKbd 6
  60. #define envPortISOADBKbd 7
  61. #define envStdISOADBKbd 8
  62. #define envExtISOADBKbd 9
  63. #define false32b 0            /*24 bit addressing error*/
  64. #define true32b 1            /*32 bit addressing error*/
  65.  
  66. /* result types for RelString Call */
  67.  
  68. #define sortsBefore -1        /*first string < second string*/
  69. #define sortsEqual 0        /*first string = second string*/
  70. #define sortsAfter 1        /*first string > second string*/
  71.  
  72. enum {dummyType,vType,ioQType,drvQType,evType,fsQType };
  73. typedef unsigned short QTypes;
  74.  
  75. enum {OSTrap,ToolTrap};
  76. typedef unsigned char TrapType;
  77.  
  78. struct SysParmType {
  79.     char valid;
  80.     char aTalkA;
  81.     char aTalkB;
  82.     char config;
  83.     short portA;
  84.     short portB;
  85.     long alarm;
  86.     short font;
  87.     short kbdPrint;
  88.     short volClik;
  89.     short misc;
  90. };
  91.  
  92. typedef struct SysParmType SysParmType;
  93. typedef SysParmType *SysPPtr;
  94.  
  95. struct QElem {
  96.     struct QElem *qLink;
  97.     short qType;
  98.     short qData[1];
  99. };
  100.  
  101. typedef struct QElem QElem;
  102. typedef QElem *QElemPtr;
  103.  
  104. struct QHdr {
  105.     short qFlags;
  106.     QElemPtr qHead;
  107.     QElemPtr qTail;
  108. };
  109.  
  110. typedef struct QHdr QHdr;
  111. typedef QHdr *QHdrPtr;
  112.  
  113. struct DateTimeRec {
  114.     short year;
  115.     short month;
  116.     short day;
  117.     short hour;
  118.     short minute;
  119.     short second;
  120.     short dayOfWeek;
  121. };
  122.  
  123. typedef struct DateTimeRec DateTimeRec;
  124. struct SysEnvRec {
  125.     short environsVersion;
  126.     short machineType;
  127.     short systemVersion;
  128.     short processor;
  129.     Boolean hasFPU;
  130.     Boolean hasColorQD;
  131.     short keyBoardType;
  132.     short atDrvrVersNum;
  133.     short sysVRefNum;
  134. };
  135.  
  136. typedef struct SysEnvRec SysEnvRec;
  137. #ifdef __cplusplus
  138. extern "C" {
  139. #endif
  140. pascal SysPPtr GetSysPPtr(void);
  141. pascal void SysBeep(short duration)
  142.     = 0xA9C8;
  143. pascal long KeyTrans(Ptr transData,short keycode,long *state)
  144.     = 0xA9C3;
  145. pascal OSErr DTInstall(QElemPtr dtTaskPtr); 
  146. pascal char GetMMUMode(void);
  147. pascal void SwapMMUMode(char *mode);
  148. pascal OSErr SysEnvirons(short versionRequested,SysEnvRec *theWorld);
  149. pascal OSErr ReadDateTime(unsigned long *time); 
  150. pascal void GetDateTime(unsigned long *secs);
  151. pascal OSErr SetDateTime(unsigned long time);
  152. pascal void SetTime(const DateTimeRec *d);
  153. pascal void GetTime(DateTimeRec *d);
  154. pascal void Date2Secs(const DateTimeRec *d,unsigned long *s);
  155. pascal void Secs2Date(unsigned long s,DateTimeRec *d);
  156. pascal void Delay(long numTicks,long *finalTicks);
  157. pascal long GetTrapAddress(short trapNum);
  158. pascal void SetTrapAddress(long trapAddr,short trapNum);
  159. pascal long NGetTrapAddress(short trapNum,TrapType tTyp);
  160. pascal void NSetTrapAddress(long trapAddr,short trapNum,TrapType tTyp); 
  161. pascal OSErr WriteParam(void);
  162. pascal Boolean EqualString(const Str255 str1,const Str255 str2,Boolean caseSens,
  163.     Boolean diacSens);
  164. Boolean equalstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens);
  165. pascal void UprString(Str255 theString,Boolean diacSens);
  166. void uprstring(char *theString,Boolean diacSens);
  167. pascal void Enqueue(QElemPtr qElement,QHdrPtr qHeader); 
  168. pascal OSErr Dequeue(QElemPtr qElement,QHdrPtr qHeader);
  169. pascal long SetCurrentA5(void)
  170.     = {0x2E8D,0x2A78,0x0904};
  171. pascal long SetA5(long newA5)
  172.     = {0x2F4D,0x0004,0x2A5F};
  173. pascal void Environs(short *rom,short *machine);
  174. pascal void Restart(void);
  175. pascal short RelString(const Str255 str1,const Str255 str2,Boolean caseSens,
  176.     Boolean diacSens);
  177. short relstring(char *str1,char *str2,Boolean caseSens,Boolean diacSens);
  178. pascal OSErr HandToHand(Handle *theHndl);
  179. pascal OSErr PtrToXHand(Ptr srcPtr,Handle dstHndl,long size);
  180. pascal OSErr PtrToHand(Ptr srcPtr,Handle *dstHndl,long size);
  181. pascal OSErr HandAndHand(Handle hand1,Handle hand2);
  182. pascal OSErr PtrAndHand(Ptr ptr1,Handle hand2,long size);
  183. pascal OSErr InitUtil(void)
  184.     = {0xA03F,0x3E80};
  185. pascal Boolean SwapInstructionCache(Boolean cacheEnable);
  186. pascal void FlushInstructionCache(void);
  187. pascal Boolean SwapDataCache(Boolean cacheEnable);
  188. pascal void FlushDataCache(void);
  189. #ifdef __cplusplus
  190. }
  191. #endif
  192.  
  193. #endif
  194.